CXXFLAGS=-Wall -g 
CPPFLAGS=-I includes
LDFLAGS=-lrt

COMMON_SOURCES = $(wildcard src/*.cpp)
SERVER_SOURCES = $(wildcard src/servidor/*.cpp) $(COMMON_SOURCES)
CLIENT_SOURCES = $(wildcard src/cliente/*.cpp) $(COMMON_SOURCES)

COMMON_OBJS = $(patsubst %.cpp,%.o,$(COMMON_SOURCES))
SERVER_OBJS = $(patsubst %.cpp,%.o,$(SERVER_SOURCES))
CLIENT_OBJS = $(patsubst %.cpp,%.o,$(CLIENT_SOURCES))

ALL_SOURCES = $(CLIENT_SOURCES) $(SERVER_SOURCES) $(COMMON_SOURCES)
ALL_OBJS =  $(CLIENT_OBJS) $(SERVER_OBJS) $(COMMON_OBJS)
DEPENDENCIAS = $(ALL_OBJS:.o=.d)

all: servidor cliente

%.d: %.cpp
	$(CXX) $(CPPFLAGS) -MM -MF $@ $<

-include $(DEPENDENCIAS)

servidor: $(SERVER_OURCES) $(SERVER_OBJS)
	$(CXX) $(LDFLAGS) $(SERVER_OBJS) -o servidor


cliente: $(CLIENT_SOURCES) $(CLIENT_OBJS)
	$(CXX) $(LDFLAGS) $(CLIENT_OBJS) -o cliente

clean:
	rm -f $(ALL_OBJS) $(DEPENDENCIAS)

check-syntax:
	$(CXX) $(CPPFLAGS) -o nul -Wall -S ${CHK_SOURCES}
